import axios from 'axios'
// 提示框
import { Message } from 'element-ui';
// import {getters} from './getters'
import store from '@/store'
// 实例axios
const service = axios.create({
  // 设置基地址
  baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  timeout: 5000 // request timeout
})

// 请求拦截
service.interceptors.request.use(
  (config) => {
    //  请求成功
    // console.log('token',store.getters.token);// 这时token为null
    // 判断token有没有值，如果有值就给加上请求头
    const _token = store.getters.token
    if(_token){
      config.headers.Authorization = `Bearer ${_token}`
    }

    return config
  },
  (error) => {
    // 请求失败
    return Promise.reject(error)
  }
)

// 响应拦截
service.interceptors.response.use(
  // 响应成功
  (response) => {
    const { data,message,success } = response.data
    // console.log(response)
    if(success === false){
      // 提示用户错误 Message.error(提示信息的变量)   这是给用户看的错误
      Message.error(message)
      // 可以通过Error构造函数弄出一个错误
      return Promise.reject(new Error(message))

    }else{
    // 正常返回数据
    return data
    }
  },
  // 响应失败   这是给程序看的 一旦出现错误，会终止不会执行后面的代码
   (error) => {
    return Promise.reject(error)
  }
)

export default service
